Cette documentation n'est pas terminée. Merci de nous aider et de contribuer à la documentation.
Modèle GuiCommand explique comment les commandes doivent être documentées. Parcourez Category:UnfinishedDocu pour voir d'autres pages incomplètes comme celle-ci. Voir Category:Command_Reference pour toutes les commandes.
Voir Écrire une page Wiki pour apprendre à éditer les pages du wiki, et aller à Contribuer à FreeCAD pour apprendre d'autres façons de contribuer.Je pense que l' atelier Sketcher a besoin de quelques exemples qui ne sont pas des tutoriels détaillés ou des vidéos...
Une charnière film est le petit morceau de plastique pliable qui relie les deux côtés d'un objet moulé par injection, tel qu'un conduit avec un couvercle, ou les deux moitiés d'un boîtier de bouchon protégeant de la poussière.
Cet exemple utilise une sorte d'esquisse principale pour empiler des esquisses dépendantes. Il montre également comment attacher et animer un simple clip basé sur les fonctions de PartDesign et les contraintes de
Sketcher. L'utilisation des
expressions comme décrit ci-dessous nécessite FreeCAD V 0.21 ou plus.
En général, un objet est modélisé dans un environnement fermé. Plus tard, la partie mobile doit être retournée de 180° pour être moulée à l'état ouvert.
La bande pliable est représentée par un arc de cercle pour l'état fermé et par une ligne droite pour l'état ouvert, les deux ayant le même point de départ.
Le point médian d'une ligne reliant les deux extrémités indique la position de l'axe de retournement, qui est normal au plan de l'esquisse. (Il est placé sur l'origine de l'esquisse afin que l'axe global normal au plan de l'esquisse puisse être utilisé comme axe de basculement).
(Quelques explications supplémentaires cachées et une description du flux de travail peuvent être développées ici. -->
Esquisse maître et charnière du film final animé (cliquez sur l'image si l'animation s'est arrêtée après quelques répétitions)
Pour un demi-cercle, la longueur de l'arc est le rayon multiplié par Pi (l = r * Pi). Le rayon est appelé NeutralRadius et la ligne est appelée DevelopedLength. Une expression pour la longueur développée relie les deux valeurs : .Constraints.NeutralRadius * pi
.
suivi de ValueType.ValueName pour traiter une autre valeur.
L'arc de cette charnière film a une longueur constante et un rayon variable. Une entrée est le NeutralRadius de l'esquisse de base. Pour l'avoir à portée de main dans cette esquisse, il est lié en tant que géométrie externe ayant une dimension de référence appelée ReferenceRadius.
Un quartier de géométrie de construction affiche la relation entre l'arc et le rayon pour un angle donné.
InputLength = ReferenceRadius * Pi
et
ArcLength = DynamicRadius * Pi * ArcAngle / 180°
de longueur constante se traduit par :
ReferenceRadius * Pi = DynamicRadius * Pi * ArcAngle / 180°
et avec Pi éliminé, nous obtenons :
ReferenceRadius = DynamicRadius * ArcAngle / 180° or DynamicRadius = ReferenceRadius * 180° / ArcAngle
.Constraints.ReferenceRadius * 180 ° / .Constraints.ArcAngle
Une charnière film étant généralement symétrique, un autre arc avec le même point central, appelé HalfArc, est utilisé pour la sortie et représente une moitié de l'arc de la charnière.
.Constraints.ArcAngle / 2
Esquisse intermédiaire montrant le DynamicRadius de l'arc de la charnière de 4 (mm) à un angle donné de 45° (et le demi-arc pour la sortie)
Cette esquisse définit l'épaisseur et la géométrie adjacente de la charnière film. Par conséquent, nous chargeons le demi-arc de l'esquisse intermédiaire en tant que géométrie externe afin de l'utiliser comme base pour la partie film. (une fraction de 180° dans ce cas)
Cette charnière film est destinée à maintenir les parties connectées en contact l'une avec l'autre lorsqu'elles sont fermées. Pour ce faire, il suffit de calculer un arc de cercle de la longueur nécessaire, puis de créer une bande d'épaisseur constante et enfin d'appliquer des filets à l'endroit où la bande rencontre les moitiés de l'objet. La dernière étape raccourcit d'une certaine manière la boucle, mais dans le monde réel, ce n'est pas un problème, car l'arc ne sera jamais circulaire et les filets ont donc une influence sur la courbure de l'arc, mais pas sur sa fonctionnalité.
Esquisse de la charnière montrant le contour de la charnière sur la base de la géométrie extérieure à partir du demi-arc de cercle de l'esquisse intermédiaire.
A gauche : protrusion de la demi-charnière avec esquisse visible. A droite : demi-charnière avec ajout de
congés
Demi-charnière avec plan de symétrie sélectionné → charnière film symétrisée
Conseil : Part Objet en miroir n'accepte que les trois plans de base et ne peut donc pas être utilisé dans ce cas.
Enfin, deux paramètres définissent la taille de la charnière-film :
L'angle de courbure est contrôlé par la contrainte ArcAngle de l'esquisse intermédiaire et peut être modifié dans son éditeur de propriétés.
Mais nous sommes de vrais concepteurs et nous avons nommé correctement les contraintes et les dimensions de nos esquisses, ce qui nous permet de contrôler l'angle de pliage via Python.
Quelques lignes de code de base à intégrer dans un contexte d'interface graphique pourraient ressembler à ceci :
doc=App.ActiveDocument
sketch=doc.getObjectsByLabel('IntermediateSketch')[0]
...
sketch.getDatum('ArcAngle')
...
sketch.setDatum('ArcAngle',App.Units.Quantity('50.000000 deg'))
doc.recompute(None,True,True)
Une brève explication :
doc = App.ActiveDocument
: pour adresser le document actif par un alias appelé docsketch = doc.getObjectsByLabel('IntermediateSketch')[0]
: pour adresser l'esquisse concernée par l'alias sketch.0
pour choisir le premier objet de la liste. (Nous ne nous attendons pas à ce qu'un autre objet ait le même label et nous n'avons donc pas à nous préoccuper des autres éléments de la liste).sketch.getDatum('ArcAngle')
: renvoie la valeur en cours de la contrainte dimensionnelle ArcAngle (dans la vue rapport).sketch.setDatum('ArcAngle', App.Units.Quantity('50.0 deg'))
: définit la valeur de ArcAngle à 50°
doc.recompute(None,True,True)
: pour mettre à jour l'ensemble du document afin d'afficher également les modifications de la géométrie dépendante.
Les deux moitiés du truc du clip attendent d'être fixées à la charnière, l'une du côté statique et l'autre du côté mobile.
Deux moitiés d'un simple clip
Le côté statique est facile :
Charnière film et moitié statique en position de modélisation → charnière film avec la moitié statique repositionnée et unie
Mais le côté mobile est différent : la moitié concernée de la géométrie du clip doit se déplacer dans la bonne position avant que le (re)calcul d'une opération Union ne commence.
A ce stade, il me manque une fonction "Attachment with offset" comme celle d'Assembly3 pour attacher la géométrie du clip à l'une des faces mobiles. Mais après quelques expériences et ajustements, j'ai trouvé une solution :
Bien qu'il soit possible d'utiliser l'ancrage pour les aligner, l'ancrage ne sera pas paramétriquement lié.
Dans cette idée, un flux de travail pourrait ressembler à ce qui suit :
La moitié mobile sera ancrée à un coin du côté de la charnière mobile (Mode associé OXZ : sommet, arête, arête)
Rétrospectivement, il aurait été plus judicieux de fournir la géométrie d'ancrage avec l'esquisse intermédiaire afin d'éviter une autre source de problème de dénomination topologique.
Le clip jusqu'à présent et la moitié mobile en position de modélisation → clip terminé avec la moitié mobile ancrée et unie
Le résultat devrait être un seul clip solide, qui peut être fermé et ouvert en changeant l'ArcAngle de la charnière film. Angles autorisés : 0,1° à 180°, la section film ne doit pas devenir droite et, plus que fermé cela n'a pas de sens. (À 180°, l'objet peut être fusionné dans les zones tangentes ou de chevauchement, mais un petit écart supplémentaire peut être utile si cela n'est pas acceptable).
Clip presque fermé → Clip à moitié fermé → Clip prêt à être moulé